table.insert(itemActions,
	function(item, action)
		-- GEMS
		local priority = 3 -- pick priority

		if not isGem(item) then 
			return false
		elseif action == aPICK then
			return priority
		end

		return false
	end
)

-- note: ensure the first line on second thsu last returns includes "or"
-- and that the first line does not.
-- Thanks to plusmedic and wreinhardt!
function isGem(item)
	return (
			isPerfectGem(item)
			or isFlawlessGem(item)
			-- or isNormalGem(item)
			-- or isFlawedGem(item)
			-- or isChippedGem(item)
			)
end


-- Gems are ordered to follow TASRED pattern used when cubing runes.
-- TASRED = Topaz, Amethyst, Sapphire, Ruby, Emerald, Diamond
-- Skulls are not used, so they are commented out.
-- Do not comment out all individual gems in a return below. Empty returns may break pickit.
-- Instead, comment out the appropriate gem type in IsGem function above 
-- or comment out all gems in ..\includes.lua

function isPerfectGem(item)
	return (
			item.baseItem.code == "gpy" -- Perfect Topaz
			or item.baseItem.code == "gpv" -- Perfect Amethyst
			or item.baseItem.code == "gpb" -- Perfect Sapphire
			or item.baseItem.code == "gpr" -- Perfect Ruby
			or item.baseItem.code == "gpg" -- Perfect Emerald
			or item.baseItem.code == "gpw" -- Perfect Diamond
			or item.baseItem.code == "skz" -- Perfect Skull
			)
end

function isFlawlessGem(item)
	return (
			item.baseItem.code == "gly" -- Flawless Topaz
			or item.baseItem.code == "gzv" -- Flawless Amethyst
			or item.baseItem.code == "glb" -- Flawless Sapphire
			or item.baseItem.code == "glr" -- Flawless Ruby
			or item.baseItem.code == "glg" -- Flawless Emerald
			or item.baseItem.code == "glw" -- Flawless Diamond
			or item.baseItem.code == "skl"    -- Flawless Skull

			)
end

function isNormalGem(item)
	return (
			item.baseItem.code == "gsy"	-- Topaz
			or item.baseItem.code == "gsv" -- Amethyst
			or item.baseItem.code == "gsb" -- Sapphire
			or item.baseItem.code == "gsr" -- Ruby
			or item.baseItem.code == "gsg" -- Emerald
			or item.baseItem.code == "gsw" -- Diamond
			--or item.baseItem.code == "sku" -- Skull
			)
end

function isFlawedGem(item)
	return (
			item.baseItem.code == "gfy" -- Flawed Topaz
			or item.baseItem.code == "gfv" -- Flawed Amethyst
			or item.baseItem.code == "gfb" -- Flawed Sapphire
			or item.baseItem.code == "gfr" -- Flawed Ruby
			or item.baseItem.code == "gfg" -- Flawed Emerald
			or item.baseItem.code == "gfw" -- Flawed Diamond
			--or item.baseItem.code == "skf" -- Flawed Skull
			)
end

function isChippedGem(item)
	return (
			item.baseItem.code == "gcy"	   -- Chipped Topaz
			or item.baseItem.code == "gcb" -- Chipped Sapphire
			or item.baseItem.code == "gcg" -- Chipped Emerald
			or item.baseItem.code == "gcv" -- Chipped Amethyst
			or item.baseItem.code == "gcr" -- Chipped Ruby
			or item.baseItem.code == "gcw" -- Chipped Diamond
			--or item.baseItem.code == "skc"  -- Chipped Skull
			)
end